package com.ruoyi.project.modules.page.mapper;

import java.util.List;

import com.ruoyi.project.modules.fileInfo.domain.FileInf;
import com.ruoyi.project.modules.interfaceinfo.domain.CategoryPageDto;
import com.ruoyi.project.modules.page.domain.Page;
import org.apache.ibatis.annotations.Param;

/**
 * 页面Mapper接口
 * 
 * @author smallrain
 * @date 2021-11-06
 */
public interface PageMapper 
{
        /**
         * 查询页面
         *
         * @param id 页面主键
         * @return 页面
         */
        public Page selectPageById(Long id);

        /**
         * 查询页面列表
         *
         * @param page 页面
         * @return 页面集合
         */
        public List<Page> selectPageList(Page page);

        /**
         * 新增页面
         *
         * @param page 页面
         * @return 结果
         */
        public int insertPage(Page page);

        /**
         * 修改页面
         *
         * @param page 页面
         * @return 结果
         */
        public int updatePage(Page page);

        /**
         * 删除页面
         *
         * @param id 页面主键
         * @return 结果
         */
        public int deletePageById(Long id);

        /**
         * 批量删除页面
         *
         * @param ids 需要删除的数据主键集合
         * @return 结果
         */
        public int deletePageByIds(String[] ids);

        List<Page> pageListByInterfaceId(@Param("interfaceIds") List<Long> interfaceIds);

        List<FileInf> selectPageFileByInterfaceId(@Param("interfaceId") Long interfaceId);

        List<Long> tableList(@Param("interfaceIds") List<Long> interfaceIds);

        void updateCategoryCode(@Param("categoryId") Long id, @Param("categoryCode") String code);

        /**
         * 查询页面列表
         *
         * @param page 页面
         * @return 页面集合
         */
        List<Page> selectPageListV2(Page page);

    List<CategoryPageDto> queryPageAndInterface(@Param("categoryId") Long categoryId);
}
